/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.proyectos.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Jose
 */
@Entity
@Table(name = "propuestas")
@NamedQueries({
@NamedQuery(name = "Propuestas.findAll", query = "SELECT d FROM Propuestas d"),
@NamedQuery(name = "Propuestas.findByNcodigo", query = "SELECT d FROM Propuestas d WHERE d.ncodigo = :ncodigo"),
@NamedQuery(name = "Propuestas.findByAlumno", query = "SELECT d FROM Propuestas d WHERE d.nalumno = :nalumno and d.ncarrera = :ncarrera"),
@NamedQuery(name = "Propuestas.findByAlumnoAcep", query = "SELECT d FROM Propuestas d WHERE d.nalumno = :nalumno and d.ncarrera = :ncarrera and d.lvisto=1"),
@NamedQuery(name = "Propuestas.findByAlumnoDen", query = "SELECT d FROM Propuestas d WHERE d.nalumno = :nalumno and d.ncarrera = :ncarrera and d.lvisto=2"),
@NamedQuery(name = "Propuestas.findByPendientes", query = "SELECT d FROM Propuestas d WHERE d.lvisto=0 and d.ncarrera = :ncarrera and upper(d.cnombre) like :cnombre" ),
@NamedQuery(name = "Propuestas.findByHistorico", query = "SELECT d FROM Propuestas d WHERE d.lvisto = :lvisto and d.ncarrera = :ncarrera and upper(d.cnombre) like :cnombre" ),
@NamedQuery(name = "Propuestas.findByName", query = "SELECT d FROM Propuestas d WHERE upper(d.cnombre) like :cnombre and d.ncarrera = :ncarrera")})
public class Propuestas implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column
    private BigDecimal ncodigo;
   
    @Column
    private String cnombre;
   
    @Column
    private String cdescripcion;
    @Column
    private BigDecimal lvisto;
  
    public Propuestas() {
    }

    @ManyToOne
    @JoinColumn(name="ncarrera")
    private Carreras ncarrera;
    @ManyToOne
    @JoinColumn(name="nalumno")
    private alumnos nalumno;

    public Carreras getNcarrera() {
        return ncarrera;
    }

    public void setNcarrera(Carreras ncarrera) {
        this.ncarrera = ncarrera;
    }

   
    public String getCnombre() {
        return cnombre;
    }

    public void setCnombre(String cnombre) {
        this.cnombre = cnombre;
    }

    public BigDecimal getNcodigo() {
        return ncodigo;
    }

    public void setNcodigo(BigDecimal ncodigo) {
        this.ncodigo = ncodigo;
    }

    public String getCdescripcion() {
        return cdescripcion;
    }

    public void setCdescripcion(String cdescripcion) {
        this.cdescripcion = cdescripcion;
    }

    public BigDecimal getLvisto() {
        return lvisto;
    }

    public void setLvisto(BigDecimal lvisto) {
        this.lvisto = lvisto;
    }

    public alumnos getNalumno() {
        return nalumno;
    }

    public void setNalumno(alumnos nalumno) {
        this.nalumno = nalumno;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 47 * hash + Objects.hashCode(this.ncodigo);
        hash = 47 * hash + Objects.hashCode(this.cnombre);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Propuestas other = (Propuestas) obj;
        if (!Objects.equals(this.ncodigo, other.ncodigo)) {
            return false;
        }
        if (!Objects.equals(this.cnombre, other.cnombre)) {
            return false;
        }
        return true;
    }
    
}
